def format_str():
    """ 格式化字符串 """
    name = '张三'
    print('欢迎您，%s' % name)

    # 整数，float类型
    num = 12.534
    print('您输入的数字是:%.4f' % num)
    num2 = 54
    print('您的编号是:%04d' % num2)

    t = (1, 2, 3, 4, 5)
    print('您输入的元组是:%s' % str(t))

    user = {'id': 12312312312, 'name': name, 'age': 9}
    print('您的ID是%(id)d，姓名是%(name)s，年龄是%(age)02d' % user)


def format_str_2():
    """ 使用.format进行格式化字符串 """
    # 使用位置
    print('欢迎您，{0}，{1}，---{0}说'.format('张三', '好久不见'))
    # 使用名称
    print('您好，{name}，您的编号是{num}'.format(name='张胜男', num=45))
    # 使用json传参
    d = {
        'name': '李四',
        'num': 45
    }
    print('您好，{name}，您的编号是{num}'.format(**d))

    # 格式元组
    point = (1, 0, 1, 4)
    print('坐标位置：{0[0]}:{0[3]}'.format(point))

    # 格式化类
    u = User('张氏', 83)
    print(u.show())
    # 使用__str___
    print(u)


class User(object):

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def show(self):
        return '姓名:{self.name}, 年龄:{self.age}'.format(self=self)

    def __str__(self):
        return self.show()


if __name__ == '__main__':
    format_str_2()
